package testes;

import static org.junit.Assert.*;

import java.util.HashSet;
import java.util.Set;

import org.bunny.businessLayer.CalendarDate;
import org.bunny.businessLayer.Campeonato;
import org.bunny.businessLayer.Clube;
import org.bunny.businessLayer.Continente;
import org.bunny.businessLayer.Grupo;
import org.bunny.businessLayer.Jogador;
import org.bunny.businessLayer.Pais;
import org.bunny.businessLayer.Participacao;
import org.bunny.businessLayer.PosicaoJogador;
import org.bunny.businessLayer.TipoCampeonato;
import org.bunny.businessLayer.Treinador;
import org.junit.Test;

public class ParticipacaoTest {


	@Test
	public void testParticipacaoIntBooleanCampeonatoPaisSetOfJogadorTreinador() {
		//Iniciais
		Campeonato camp = new Campeonato(TipoCampeonato.Europeu, "Euro2012");
		Pais p = new Pais();
		Clube c = new Clube("Benfica",p);
		PosicaoJogador pos = PosicaoJogador.Avancado;
		Jogador jg = new Jogador(new CalendarDate(1,1,1990), "Joao", p, pos, c);
		Set<Jogador> jgs= new HashSet<Jogador>();
		jgs.add(jg);
		
		Treinador trei = new Treinador(new CalendarDate(1,1,1990), "Joao", p);
		Participacao p1 = new Participacao(1, true, camp, p, jgs, trei);
		assertEquals("Participacao [classificacao=" + "1" + ", organizador=" + true + ", participado=" + camp + ", participante=" + p + ", plantel=" + jgs + ", treinador=" + trei + "]\n", p1.toString());
		
		//getters e setters
		p1.setClassificacao(2);
		assertEquals(2, p1.classificacao());
		
		p1.setOrganizador(false);
		assertFalse(p1.organizador());
		p1.organiza();
		assertTrue(p1.organizador());
		
		
		Campeonato camp1 = new Campeonato(TipoCampeonato.Europeu, "Euro2016");
		p1.setParticipado(camp1);
		assertEquals(camp1, p1.participado());
		
		Pais pais = new Pais();
		p1.setParticipante(pais);
		assertEquals(pais , p1.participante());
		
		Jogador jg1 = new Jogador(new CalendarDate(1,1,1990), "Joao1", p, pos, c);
		jgs.add(jg1);
		p1.setPlantel(jgs);
		assertEquals(jgs, p1.plantel());
		
		Treinador trei2 = new Treinador(new CalendarDate(1,1,1990), "Jesus", p);
		p1.setTreinador(trei2);
		assertEquals(trei2, p1.treinador());
		
		//Participacao p2 = new Participacao(1, true, camp, p, jgs, trei);
		// p2.adicionaJogador("Ronaldo", new CalendarDate(1,1,1990), pos, p, c, p);
		//Jogador jg3 = new Jogador(new CalendarDate(1,1,1990), "Ronaldo", p, pos, c);
		//jgs.add(jg3);
		//assertEquals(p1.plantel(), jgs);
	
		Clube g = new Clube("Pastilhas", new Pais(24,"Portugal",255, new Continente(),new Grupo()));
		p1.adicionaJogador("Ronaldo", "01-01-1990", pos, p, "Pastilhas");
		
		p1.adicionaJogador("Ronaldo C", "01-06-1990", pos, p, "Paletas");
		
		
		//assertEquals(,jg7.nome());
	}

	

}
